package io.fft.flight.modules.flight.dto.order;

import io.fft.flight.modules.flight.dto.order.passenger.OrderNotifyPassengerDTO;
import io.fft.flight.modules.flight.dto.order.segment.OrderNotifySegmentDTO;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * @Author: likailun
 * @Description: 订单通知信息
 * @Date: create in 2024/6/5 21:34
 */
@Data
public class OrderNotifyBaseDTO implements Serializable {
    /**
     * 订单状态  2出票失败 3支付成功 4正在出票 5已出票 6已取消
     */
    private String orderStatus;
    /**
     * 订单编号
     */
    private String orderNo;
    /**
     * officeNo
     */
    private String officeNo;
    /**
     * 生单pnr
     */
    private String bookPnr;
    /**
     * 大编码、非必须
     */
    private String bigPnr;
    /**
     * 新PNR
     */
    private String pnr;
    /**
     * 支付方式  YPAY-胤钱宝支付
     * 必须
     */
    private String payType;
    /**
     * 政策ID
     * 必须
     */
    private String dataSourcePolicyNo;
    /**
     * 出票类型，已出票订单必填，B2B or BSP 出票
     * 非必须
     */
    private String ticketVoucherType;
    /**
     * 出票方式: 1-自动出票 2-手动出票
     */
    private String ticketChannels;
    /**
     * 自动出票提示信息
     */
    private String failureReason;
    /**
     * 航程类型 1-单程 2-往返 3-多程
     * 必须
     */
    private String flightType;
    /**
     * 是否换编码出票
     * 必须
     */
    private String ifChangePnr;
    /**
     * 交易流水号
     * 必须
     */
    private String streamNumber;
    /**
     * 联系人
     * 必须
     */
    private String contactName;
    /**
     * 联系人电话
     * 必须
     */
    private String contactTel;
    /**
     * 联系人邮箱
     */
    private String contactEmail;
    /**
     * 联系人备注
     */
    private String remark;



    /**
     * 航段信息
     */
    private List<OrderNotifySegmentDTO> segmentList;
    /**
     * 乘客信息
     */
    private List<OrderNotifyPassengerDTO> passengerList;
    /**
     * 订单价格明细
     */
    private OrderNotifySupplierOrderPriceDto supplierOrderPrice;
    /**
     * 政策信息
     */
    private OrderNotifySupplierPolicyDetailDTO supplierPolicyDetailList;
}
